xen: Extend DOMCTL createdomain to support arch configuration
authorJulien Grall <julien.grall@linaro.org>
Wed, 1 Apr 2015 16:21:41 +0000 (17:21 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 2 Apr 2015 09:42:35 +0000 (10:42 +0100)
commita7511905fae7ba592c5bf63cd77d8ff78087d689
tree7599327ea8faee8db3d176a04bf90e5c1373a0ec
parent07a07734ae6efe4dc72a6bec893200e892e5a734
xen: Extend DOMCTL createdomain to support arch configuration

On ARM the virtual GIC may differ between each guest (emulated GIC version,
number of SPIs...). This information is already known at the domain creation
and can never change.

For now only the gic_version is set. In the long run, there will be more
parameters such as the number of SPIs. All will be required to be set at the
same time.

A new arch-specific structure arch_domainconfig has been created, the x86
one doesn't have any specific configuration, for now, a dummy structure
(C-spec compliant) has been created.

Some external tools (qemu, xenstore) may be required to create a domain.
Rather than asking them to take care of the arch-specific domain
configuration, let the current function (xc_domain_create) chose a
default configuration and introduce a new one (xc_domain_create_config).

This patch also drops the previously introduced DOMCTL arm_configure_domain
in Xen 4.5, as it has been made useless.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
Cc: Wei Liu <wei.liu2@citrix.com>
Cc: Keir Fraser <keir@xen.org>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: George Dunlap <george.dunlap@eu.citrix.com>
27 files changed:
tools/flask/policy/policy/modules/xen/xen.if
tools/libxc/include/xenctrl.h
tools/libxc/xc_domain.c
tools/libxl/libxl_arch.h
tools/libxl/libxl_arm.c
tools/libxl/libxl_create.c
tools/libxl/libxl_dm.c
tools/libxl/libxl_dom.c
tools/libxl/libxl_internal.h
tools/libxl/libxl_x86.c
xen/arch/arm/domain.c
xen/arch/arm/domctl.c
xen/arch/arm/mm.c
xen/arch/arm/setup.c
xen/arch/x86/domain.c
xen/arch/x86/mm.c
xen/arch/x86/setup.c
xen/common/domain.c
xen/common/domctl.c
xen/common/schedule.c
xen/include/public/arch-arm.h
xen/include/public/arch-x86/xen.h
xen/include/public/domctl.h
xen/include/xen/domain.h
xen/include/xen/sched.h
xen/xsm/flask/hooks.c
xen/xsm/flask/policy/access_vectors